package com.wksc.framework.impexp.mode;

import java.io.FileNotFoundException;
import java.io.IOException;

import com.wksc.framework.impexp.handler.exp.*;
import com.wksc.framework.impexp.handler.imp.BaseImpHandler;
import com.wksc.framework.impexp.handler.imp.ImpCsvHandler;
import com.wksc.framework.impexp.handler.imp.ImpTxtHandler;
import com.wksc.framework.impexp.handler.imp.ImpXlsHandler;
import com.wksc.framework.impexp.template.ExpTemplate;
import com.wksc.framework.impexp.template.ImpTemplate;
import jxl.read.biff.BiffException;

/**
 * <p> Title(文件名): ${file_name} </p>
 * <p> Description(描述): ${todo} </p>
 * <p> Copyright(版权): Copyright (c) ${year} </p>
 * <p> Company(公司): 成都四方信息技术有限公司 </p>
 * <p> CreateTime(生成日期)：11-11-7上午10:01 </p>
 *
 * @author wanglei
 * @version ${project_name}
 */
public class ModeFactory {
    /**
     * 导出模式的处理类
     * @param expMode 导出模式
     * @return 导出的handler类
     * @throws java.io.IOException
     * @throws java.io.FileNotFoundException
     * @throws BiffException 
     */
    public static BaseExpHandler getExpModeHandler(Mode expMode, ExpTemplate expTemplate) throws BiffException, FileNotFoundException, IOException{
        switch (expMode) {
            case EXP_CLASSIC:
                return new ExpClassicHandler(expTemplate);
            case EXP_CSV:
                return new ExpCsvHandler(expTemplate);
            case EXP_TXT:
                return new ExpTxtHandler(expTemplate);
            case EXP_XLS:
                return new ExpXlsHandler(expTemplate);
            //默认使用Classic模式处理
            default:
                return new ExpClassicHandler(expTemplate);
        }
    }

    /**
     * 导入模式的处理类
     * @param impMode 导入模式
     * @return 导入的handler类
     * @throws java.io.IOException
     * @throws BiffException 
     */
    public static BaseImpHandler getImpModeHandler(Mode impMode, ImpTemplate impTemplate) throws BiffException, IOException{
        switch (impMode) {
            case IMP_XLS:
                return new ImpXlsHandler(impTemplate);
            case IMP_TXT:
            	return new ImpTxtHandler(impTemplate);
            case IMP_CSV:
            	return new ImpCsvHandler(impTemplate);
            //默认使用xls模式处理
            default:
                return new ImpXlsHandler(impTemplate);
        }
    }
}
